// 日志中间信息存储
/*
- 1、输出时间
- 2、日志等级
- 3、源文件名称
- 4、源代码行号
- 5、线程ID
- 6、日志主体信息
- 7、日志器名称（支持多日志器的同时使用）
*/
#pragma once
#include <iostream>
#include <string>
#include <thread>

#include "level.hpp"
#include "util.hpp"

namespace nhylog
{
    struct LogMsg
    {
        time_t _ctime;
        size_t _line;
        LogLevel::value _level;

        std::thread::id _tid;
        std::string _file;
        std::string _logger;
        std::string _payload;

        LogMsg(LogLevel::value level,
               size_t line,
               const std::string file,
               std::string logger,
               std::string payload)
            : _ctime(nhylog::util::Date::now()),
              _level(level),
              _line(line),
              _tid(std::this_thread::get_id()), // 这里要引入pthread库
              _file(file),
              _logger(logger),
              _payload(payload)
        {
        }
    };
}